# 打开源文件和目标文件
with open("GB2312_80.bin", "rb") as src_file, open(
    "GB2312_80_new.bin", "wb"
) as dst_file:
    # 循环读取源文件，每次32字节
    while True:
        data = src_file.read(32)
        # 如果读取的字节不足32个，说明已经到达文件末尾，结束循环
        if len(data) < 32:
            if len(data) > 0:  # 处理最后不足32字节的数据
                rearranged_data = data[::2] + data[1::2]
                dst_file.write(rearranged_data.ljust(32, b"\0"))  # 不足32字节用0填充
            break

        # 重新排列奇偶位置的字节
        rearranged_data = data[::2] + data[1::2]

        # 写入目标文件
        dst_file.write(rearranged_data)
        # 在AA区到AF区插入0,简化找字过程
        if dst_file.tell() == 9 * 32 * 94:
            dst_file.write(b'\0' * 6 * 32 * 94)
